// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.

#pragma once

#include "Kismet/BlueprintFunctionLibrary.h"
#include "LevelSequence.h"
#include "MovieSceneFolder.h"
#include "MovieSceneToolsUserSettings.h"
#include "SequencerBindingProxy.h"
#include "SmartLevelSequenceExtensions.generated.h"

/**
 * Function library containing methods that should be hoisted onto UMovieSceneSequences for scripting purposes
 */
UCLASS()
class SMARTPYTHONEXTENSIONS_API USmartLevelSequenceExtensions : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
	
	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static void SmSetDisplayRate(ULevelSequence* LevelSequence, int32 Rate);
	
	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static TArray<UMovieSceneFolder*>& SmGetRootFolders(ULevelSequence* LevelSequence);

	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static void SmRemoveRootFolder(ULevelSequence* LevelSequence, FString Name);

	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static UMovieSceneFolder* SmAddRootFolder(ULevelSequence* LevelSequence, FString Name);
	
	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static bool SmCopyTrack(ULevelSequence* LevelSequence,  UMovieSceneTrack* Track);
	
	UFUNCTION(BlueprintCallable, Category = "LevelSequence", meta = (ScriptMethod))
	static bool SmImportCamera(ULevelSequence* LevelSequence,  UWorld* World, UMovieSceneUserImportFBXSettings* ImportFBXSettings, const FString&  ImportFilename);

};